#include <stdio.h>
#include <type_traits>
#include <functional>

struct aa {
    int a;
    int b;

    using int_type = int;
    using double_type = double;
    using int_func = std::function<int(int)>;

    int_func ab;

    void init() { a = 1; b = 3; }
    void __xx() {}
    int __xxx() { return 0; }
};

static_assert(std::is_trivial<aa>::value, "xxxxx");
static_assert(std::is_standard_layout<aa>::value, "xxxxx");

int main(int argc, const char **argv) {

    return 0;
}
